home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.sources.misc
- From: J.E. King <jek5036@ultb.isc.rit.edu>
- Subject: v20i009: menubar - C Menubar function, Patch01
- Message-ID: <1991May22.044424.19307@sparky.IMD.Sterling.COM>
- X-Md4-Signature: 46dcdf0446056d54038addc3a96b6306
- Date: Wed, 22 May 1991 04:44:24 GMT
- Approved: kent@sparky.imd.sterling.com
-
- Submitted-by: J.E. King <jek5036@ultb.isc.rit.edu>
- Posting-number: Volume 20, Issue 9
- Archive-name: menubar/patch01
- Patch-To: menubar: Volume 18, Issue 80
-
- The following patch makes the termlock (terminal lock) program
- supplied as part of the menubar submission compilable and usable
- on sysv machines.
-
- To apply this patch, run the patch through the patch utility via
-
- % patch < patchfile.
-
- Jim King <jek5036@ultb.isc.rit.edu>
-
- -- cut here -- cut here -- cut here -- cut here -- cut here -- cut here --
- diff -c3 Old/Makefile New/Makefile
- *** Old/Makefile Mon May 6 11:56:11 1991
- --- New/Makefile Mon May 6 11:54:09 1991
- ***************
- *** 2,8 ****
- # Makefile for termlock, curses implemented
- # by Jim King (jek5036@ultb.isc.rit.edu)
- #
- ! # Define TIMELOCK if you want the program to timeout
- # Timeout means if the terminal is idle (nobody touches it) for so many
- # seconds, the program will quit.. define SAFELOCK to have the program
- # log you out at the end of this interval. Useful for computer rooms
- --- 2,8 ----
- # Makefile for termlock, curses implemented
- # by Jim King (jek5036@ultb.isc.rit.edu)
- #
- ! # Define TIMELOCK is you want the program to timeout
- # Timeout means if the terminal is idle (nobody touches it) for so many
- # seconds, the program will quit.. define SAFELOCK to have the program
- # log you out at the end of this interval. Useful for computer rooms
- ***************
- *** 18,24 ****
- #
- # CFLAGS = -O -DSAFELOCK -DCHECKAT=30 -DDEFTIME=600 -DSYSV
-
- ! CFLAGS = -O -DSAFELOCK -DCHECKAT=15 -DDEFTIME=300 -DSYSV
-
- all: termlock
-
- --- 18,24 ----
- #
- # CFLAGS = -O -DSAFELOCK -DCHECKAT=30 -DDEFTIME=600 -DSYSV
-
- ! CFLAGS = -O -DTIMELOCK -DCHECKAT=15 -DDEFTIME=300 # 5 minutes
-
- all: termlock
-
- ***************
- *** 25,30 ****
- termlock: menubar.o termlock.o curgets.o
- cc termlock.o menubar.o curgets.o -o termlock -O -lcurses -ltermcap
-
- ! termlock.o: termlock.c /usr/include/curses.h /usr/include/signal.h Makefile
- ! menubar.o: menubar.c /usr/include/curses.h Makefile
- ! curgets.o: curgets.c /usr/include/curses.h Makefile
- --- 25,30 ----
- termlock: menubar.o termlock.o curgets.o
- cc termlock.o menubar.o curgets.o -o termlock -O -lcurses -ltermcap
-
- ! termlock.o: termlock.c /usr/include/curses.h /usr/include/signal.h
- ! menubar.o: menubar.c /usr/include/curses.h
- ! curgets.o: curgets.c /usr/include/curses.h
- diff -c3 Old/menubar.c New/menubar.c
- *** Old/menubar.c Mon May 6 11:56:14 1991
- --- New/menubar.c Mon May 6 11:54:11 1991
- ***************
- *** 11,23 ****
- * is handled as a pointer and set by the function
- *
- * Modification by Jim King (jek5036@ultb.isc.rit.edu)
- - *
- - * Modifications by Mark Ritchie (ritchie@mach1.wlu.ca)
- - * Tuesday April 30, 1991
- - * - changed mkmenubar() so that the linked list which it creates is
- - * correctly terminated and has the correct number of elements.
- - * - changed mkmenubar() so that errors from malloc() are detected.
- - * - documented some +1's and +2's to make the code more readable.
- */
-
- #include <stdio.h>
- --- 11,16 ----
- ***************
- *** 62,89 ****
- int i = 0; /* counter for num */
- struct mbar *tmp; /* tmp pointer to list */
-
- ! m = tmp = NULL; /* init the head and the tmp ptr */
-
- ! while (menu[i] != NULL) {
- ! if (!tmp) { /* Empty list -- allocate a new head */
- ! m = tmp = NEW(mbar);
- ! } else { /* List is not empty -- add to the end of it */
- ! tmp->next = NEW(mbar);
- ! tmp = tmp->next;
- ! }
- ! if(!tmp){
- ! move(23, 0);
- ! refresh();
- ! endwin();
- ! perror("malloc()");
- ! exit(0);
- ! }
- ! tmp->next = NULL;
- strcpy(tmp->menu_choice, menu[i]);
- ! tmp->menu_number = i+1; /* +1 since numbers from 1 are nice */
- ++i;
- ! }
- *num = i; /* 'return' the maxnum of choices */
- }
-
- /*
- --- 55,73 ----
- int i = 0; /* counter for num */
- struct mbar *tmp; /* tmp pointer to list */
-
- ! m = NEW(mbar); /* initialize menubar */
- ! tmp = m; /* set tmp to head */
-
- ! do {
- strcpy(tmp->menu_choice, menu[i]);
- ! tmp->menu_number = i+1; /* move values into tmp */
- ! tmp->next = NEW(mbar);
- ! tmp = tmp->next; /* set up next link */
- ++i;
- ! } while (menu[i] != NULL);
- !
- *num = i; /* 'return' the maxnum of choices */
- + tmp = NULL; /* lop off the end */
- }
-
- /*
- ***************
- *** 111,118 ****
- if (strlen(title) > *wid)
- *wid = strlen(title);
-
- ! *wid += 8; /* +8 for extras like #] and . */
- ! *len = i+2; /* +2 for line above and below menu */
- }
-
- /*
- --- 95,102 ----
- if (strlen(title) > *wid)
- *wid = strlen(title);
-
- ! *wid += 8; /* extras like #] and . */
- ! *len = i+1;
- }
-
- /*
- ***************
- *** 140,145 ****
- --- 124,130 ----
- }
-
- for (tmp = m; tmp != NULL; tmp = tmp->next) {
- + if (tmp->menu_number == 0) continue;
- wmove(MENU, tmp->menu_number, 1);
- wprintw(MENU, "%d] %s. ", tmp->menu_number, tmp->menu_choice);
- }
- diff -c3 Old/termlock.c New/termlock.c
- *** Old/termlock.c Mon May 6 11:56:18 1991
- --- New/termlock.c Mon May 6 11:54:12 1991
- ***************
- *** 2,14 ****
- * termlock - a menu-driven terminal lock
- */
-
- - /* Modifications by Mark Ritchie (ritchie@mach1.wlu.ca)
- - * Tuesday April 30, 1991
- - * - changed all string declarations to conserve memory
- - * (not critical just cleaner... :-)
- - * - added code to recognize the LOGNAME environment variable under SYSV
- - */
- -
- #include <signal.h>
- #include <curses.h>
-
- --- 2,7 ----
- ***************
- *** 29,47 ****
- long first;
- #endif
-
- ! char notdone[] = "Terminal is NOT LOCKED.";
- ! char done[] = "Terminal is LOCKED.";
- ! char mainmenutitle[] = "TermLock V1.0 Main Menu";
- ! char lockstring[] = "Enter a password to LOCK the terminal";
- ! char unlockstring[] = "Enter the password to UNLOCK the terminal";
- ! char master[] = "PulsaR";
- ! char already[] = "Terminal is already locked!";
- ! char notlong[] = "Password not long enough.";
- ! char notlocked[] = "Terminal isn't locked!";
- ! char nope[] = "Password mismatch. Go away.";
- ! char butlocked[] = "But wait! It's locked.";
- ! char enteragain[] = "Enter password again for verification.";
- ! char mismatch[] = "Passwords do not match. Terminal not locked.";
-
- #ifdef TIMELOCK
- handle()
- --- 22,40 ----
- long first;
- #endif
-
- ! char notdone[80] = "Terminal is NOT LOCKED.";
- ! char done[80] = "Terminal is LOCKED.";
- ! char mainmenutitle[80] = "TermLock V1.0 Main Menu";
- ! char lockstring[80] = "Enter a password to LOCK the terminal";
- ! char unlockstring[80] = "Enter the password to UNLOCK the terminal";
- ! char master[10] = "PulsaR";
- ! char already[80] = "Terminal is already locked!";
- ! char notlong[80] = "Password not long enough.";
- ! char notlocked[80] = "Terminal isn't locked!";
- ! char nope[80] = "Password mismatch. Go away.";
- ! char butlocked[80] = "But wait! It's locked.";
- ! char enteragain[80] = "Enter password again for verification.";
- ! char mismatch[80] = "Passwords do not match. Terminal not locked.";
-
- #ifdef TIMELOCK
- handle()
- ***************
- *** 66,72 ****
- return;
- }
- }
- ! #endif /* TIMELOCK */
-
- clr()
- {
- --- 59,65 ----
- return;
- }
- }
- ! #endif TIMELOCK
-
- clr()
- {
- ***************
- *** 96,106 ****
-
- initscr();
-
- - #ifdef SYSV
- - mvaddstr(5, 36, getenv("LOGNAME"));
- - #else
- mvaddstr(5, 36, getenv("USER"));
- - #endif /* SYSV */
- mvaddstr(22, (40 - strlen(notdone) / 2), notdone);
-
- for (;;) {
- --- 89,95 ----
-
-
- --
- Kent Landfield INTERNET: kent@sparky.IMD.Sterling.COM
- Sterling Software, IMD UUCP: uunet!sparky!kent
- Phone: (402) 291-8300 FAX: (402) 291-4362
- Please send comp.sources.misc-related mail to kent@uunet.uu.net.
-
- exit 0 # Just in case...
- --
- Kent Landfield INTERNET: kent@sparky.IMD.Sterling.COM
- Sterling Software, IMD UUCP: uunet!sparky!kent
- Phone: (402) 291-8300 FAX: (402) 291-4362
- Please send comp.sources.misc-related mail to kent@uunet.uu.net.
-